O Diálogo da Programação
Pense na diferença entre um simples "Olá, mundo!" e um Jogo de Adivinhação como a diferença entre um monólogo e um diálogo. Num monólogo, o programa fala e encerra. Num diálogo, o programa faz uma pergunta, abre um ouvinte e pausa seu relógio interno até que o usuário responda.
1. O Pré-Classe e Escopo
Rust importa automaticamente um pequeno conjunto de itens chamados de pré-classe em todos os programas. No entanto, para tarefas especializadas como entrada do terminal, devemos trazer explicitamente a Biblioteca Padrão para o escopo usando use std::io;. Isso pontua a lacuna entre a lógica interna do seu programa e o ambiente externo.
2. Macros vs Funções
Você notará println! termina com um ponto de exclamação. Isso o identifica como um macro. Diferentemente das funções regulares, os macros podem lidar com um número variável de argumentos e realizar interpolação de strings (preenchendo {palpite}) em tempo de compilação.
3. O Ciclo de Vida Interativo
Quando você executa cargo run, o programa inicializa, alcança io::stdin().read_line(), e suspende. Espera que o usuário pressione 'Enter', depois empacota essa entrada em um Resultado tipo para lidar com falhas potenciais de hardware de forma segura.